home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 18 / CU Amiga Magazine's Super CD-ROM 18 (1997)(EMAP Images)(GB)[!][issue 1998-01].iso / CUCD / Online / AList / src / allog.e < prev    next >
Encoding:
Text File  |  1997-10-20  |  1.1 KB  |  51 lines

  1. /* ALLog.M */
  2.  
  3. OPT MODULE
  4. OPT EXPORT
  5.  
  6. /* Log a message */
  7. MODULE 'dos/dos'
  8.  
  9. /* The LOG_xxx2 here are for continuation of previous messages */
  10. ENUM LOG_INFO, LOG_INFO2, LOG_WARNING, LOG_WARNING2, LOG_ERROR, LOG_ERROR2, LOG_FATAL, LOG_FATAL2, LOG_LAST
  11.  
  12. /* This is set in main() */
  13. DEF log_dir
  14.  
  15. /*
  16.  * Proc which logs all messages
  17.  */
  18. PROC log_message (str:PTR TO CHAR, log)
  19.    DEF fd, tmp, tmp2
  20.  
  21.    tmp2 := CurrentDir (log_dir)
  22.  
  23.    fd := Open ('T:AList.log', MODE_READWRITE)
  24.    IF (fd)        /* Assume this works, at least */
  25.       Seek (fd, 0, OFFSET_END)
  26.       SELECT LOG_LAST OF log
  27.       CASE LOG_INFO
  28.          Fwrite (fd, 'INFO:    ', 1, 9)
  29.       CASE LOG_INFO2
  30.       CASE LOG_WARNING
  31.          Fwrite (fd, 'WARNING: ', 1, 9)
  32.       CASE LOG_WARNING2
  33.       CASE LOG_ERROR
  34.          Fwrite (fd, 'ERROR:   ', 1, 9)
  35.       CASE LOG_ERROR2
  36.       CASE LOG_FATAL
  37.          Fwrite (fd, 'FATAL:   ', 1, 9)
  38.       CASE LOG_FATAL2
  39.       DEFAULT
  40.          Fwrite (fd, 'UNKNOWN: ', 1, 9)
  41.       ENDSELECT
  42.  
  43.       Fwrite (fd, str, 1, StrLen (str))
  44.       Close (fd)
  45.    ENDIF
  46.  
  47.    CurrentDir (tmp2)
  48. ENDPROC
  49.  
  50.  
  51.